Introduction
|
pltSig version 12Jul24
Copyright © 2024, Paul Mennen
|
|
The pltSig Matlab toolbox is derived from an earlier toolbox called
plt which is an alternative plotting interface to Matlab's native
plot and plotyy routines. This alternative plotting interface is still the foundation of the toolbox
but I changed the name to pltSig because the main focus of the
toolbox has shifted from the plotting interface to the applications that depend on it. (Sometimes
I still call the toolbox plt for conciseness as well as habit.)
The pltSig applications:
with practical or educational value in various topics of signal processing, math, & engineering
▪ afilt.m ▪ airspeed.m
▪ carlo.m ▪ circles12.m
▪ curves.m ▪ editz.m
▪ erip.m ▪ fseries.m
▪ gauss.m
|
classical analog filter design aircraft performance modeling
Monte Carlo simulation geometrical puzzle
classic plane curves z-plane analysis
equal ripple digital filter design synthesis of harmonic functions
summation of random variables
|
▪ gpsLog.m ▪ julia.m
▪ hermite.m ▪ motion.m
▪ pltmap.m ▪ psdZoom.m
▪ weight.m ▪ wfall.m
▪ winplt.m
|
GPS data analysis & simulation Mandelbrot & Julia set fractals
Hermite polynomial interpolation Brownian motion simulation
2D cubic interpolation & convolution power spectral averaging & zoom
classic sound level weighting curves clipping distortion effects
FFT windowing
|
These applications include capabilities and features not found elsewhere on the file exchange, and most of them merit an individual
file exchange submission. However, I chose to combine them into a single toolbox because my goals go beyond the individual
applications - primarily to promote a particular graphical interface style that makes applications easier to use.
Some aspects of this style include:
- A "flat" interface (i.e. all menus and controls to be visible at the same time).
- The use of pseudo objects - collections of traditional Matlab objects combined to serve a specific purpose. The pseudo
objects simplify application development and allow familiarity with one application to carry over to the others.
The pseudo objects are designed to conserve screen area, allowing a flat design even when many controls are needed.
- Including a way to adjust the size, position, and color of the screen elements directly in the application
(i.e. without requiring opening an additional design tool).
- The use of dark backgrounds. This allows higher color saturation, making color more useful for distinguishing traces
and other screen elements. You can use traditional Matlab colors if you want, but the dark mode is the default to
encourages its use.
- Using mouse movements and clicks more smoothly and consistently to make it easier to pan or zoom plots, move cursors,
and adjust control values.
- The use of super legends (where legend entries also are controls for disabling/enabling traces and other functions).
- The use of on-screen help text to make it easier to get started with a new application. Also the inclusion of a help
button to provide quick access to the full documentation.
- Providing consistent methods across applications for mouse & keyboard-driven data editing, metric prefixes, and
cursoring features such as peak/valley finding, delta, rms, and average value readouts.
The pltSig utilities:
If you write Matlab programs, you will almost certainly find one or more of the included utilities useful.
Most, but not all, are focused on the problems of GUI programming. Some of the more notable utilities are described below:
plt
| An alternative to the native Matlab plot and plotyy routines. A common complaint programmers have about plot
(and even more so with plotyy) is that to do anything beyond the mundane one needs to use obscure handle graphics
commands that are only easy to find if you are already familiar with them. plt solves this problem by clearly
explaining every option and parameter in one place, giving many examples of the use of every important parameter.
There are also many other advantages to plt, to numerous to mention here. Features are added
to plt regularly based on suggestions from users.
| prin
| This is what sprintf would have looked like if it was first written for Matlab instead of for the c library.
| figpos
| It is often difficult to size and position a figure window in a way that is ideal for all computers because of
the wide disparities of screen resolutions and aspect ratios as well as different taskbar sizes and locations.
These problems become even more difficult for applications requiring more than one figure window. The figpos
routine makes solving such problems trivial, or at the very least, more manageable.
| pltwater & pltImage
| These routines allow you to easily create 3D waterfall and intensity plots, and like plt, they include many well-documented options.
| colorpick
| Creates a color palette that allows you to easily choose the color that you find
most satisfying for a particular trace or screen element. Usually, if you are even given such a choice, you will be
presented with a single palette including all possible color choices. The problem with that is that the color you
want will occupy a microscopic portion of the palette, making the choice a frustrating trial-and-error process.
colorpick is different because you can adjust the palette to focus on the range of colors that interest you.
A large rectangle filled with the candidate color choice eliminates most of the trial-and-error repetition.
| pp
| A vector pretty printer which overcomes several of the annoyances of the Matlab disp function.
|
Requirements
- This toolbox has been extensively tested and verified to run under all Matlab releases from
12.1 (ver 6.1) to R2023b under all versions of windows from Windows XP thru Windows 11.
Brief testing has also been done under the Mac and other Unix-based platforms.
- No toolboxes are required to use plt. However the following applications (in the sig folder) are enhanced
when certain Matlab toolboxes are present:
- Normally the winplt.m application can display 16 different windows which is quite extensive and covers by
far most of the applications of FFT windowing. However if you have the signal processing toolbox an
additional 13 windows (defined in that toolbox) are available for display. Also winplt's user-defined FFT
window capability does not require any toolboxes, so there is no reason to think of the signal processing
toobox as a requirement.
- When using a Unix based operating system, the erip.m application must have the DSP system toolbox installed
if you want to use erip to design IIR filters or non-linear phase FIR filters. This is because erip calls
functions in that toolbox to design such filters. This limitation does not apply to Windows based systems
because a compiled Windows application will be used instead of the functions in the DSP system toolbox if
that toolbox is not installed. However, even for Unix based systems no toolboxes are required to design
FIR filters which can satisfy most filtering requirements.
- afilt.m itself does not require any toolboxes, although a different version of that application
(called aftiltALT.m) is included to demonstrate an alternative programming approach. This alternative
version uses the signal processing toolbox to make that code more concise. Most users will use the
standard version for designing and learning about the classical analog filters, and are unlikely to even
be aware of the alternate version, so they won't run into this toolbox requirement.
- If you don't have Matlab, you can still run all the applications listed above by running a Windows compiled application
called pltSig.exe. (See the pltSig.exe section.)
of the help file.
I'm interested in hearing about your problems and suggestions relating to this toolbox.
You can reach me at paul@mennen.org.
I hope using pltSig enhances your Matlab experience and increases your knowledge about signal processing.
|